home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SNNSV32.ZIP / SNNSv3.2 / kernel / sources / kr_io.ph < prev    next >
Text File  |  1994-04-25  |  7KB  |  245 lines

  1. /*****************************************************************************
  2.   FILE           : kr_io.ph
  3.   SHORTNAME      : kr_io.ph
  4.   SNNS VERSION   : 3.2
  5.  
  6.   PURPOSE        : SNNS-Kernel User Interface File I/O Function Prototypes 
  7.   NOTES          :
  8.  
  9.   AUTHOR         : Niels Mache
  10.   DATE           : 28.05.90
  11.  
  12.   CHANGED BY     : Sven Doering, Michael Vogt
  13.   IDENTIFICATION : @(#)kr_io.ph    1.12 3/15/94
  14.   SCCS VERSION   : 1.12
  15.   LAST CHANGE    : 3/15/94
  16.  
  17.              Copyright (c) 1990-1994  SNNS Group, IPVR, Univ. Stuttgart, FRG
  18.  
  19. ******************************************************************************/
  20. #ifndef _KR_IO_DEFINED_
  21. #define  _KR_IO_DEFINED_
  22.  
  23. /* begin global definition section */
  24.  
  25. /*  write complete network to disk
  26. */
  27. krui_err  krio_saveNet( char  *filename, char  *netname );
  28.  
  29. /*  load network form disk
  30. */
  31. krui_err krio_loadNet( char  *filename, char  **netname, char  **netfile_version );
  32.  
  33. /*  loading pattern file from disk
  34. */
  35. krui_err krio_loadPatterns( char  *filename );
  36.  
  37. /*  write patterns to disk
  38. */
  39. krui_err krio_savePatterns( char  *filename );
  40.  
  41. krui_err  krio_saveResult( char *filename,
  42.                            bool create,
  43.                            int  startpattern,
  44.                            int  endpattern,
  45.                            bool includeinput,
  46.                            bool includeoutput);
  47.  
  48.  
  49. #ifdef KERNEL3D
  50.  
  51. extern struct TransTable  *transTable;
  52. extern int transTableSize;
  53.  
  54. #endif
  55.  
  56.  
  57. void krio_readTimeDelayDefs(void);
  58.  
  59. /* end global definition section */
  60.  
  61. /* begin private definition section */
  62.  
  63. /*#################################################
  64.  
  65. GROUP: Local Defines
  66.  
  67. #################################################*/
  68.  
  69. #define LIN_MAX      (MAX_LIN_LEN + 1)
  70.  
  71. #define SITE_DEF     1
  72. #define TYPE_DEF     2
  73. #define DEFAULT_DEF  3
  74. #define UNIT_DEF     4
  75. #define CONNECT_DEF  5
  76. #define SUBNET_DEF   6
  77. #define LAYER_DEF    7
  78.  
  79.  
  80. #define EOS    '\0'    /*  End Of String  */
  81.  
  82.  
  83. /*#################################################
  84.  
  85. GROUP: Local Var's
  86.  
  87. #################################################*/
  88.  
  89. typedef char   SymbolType[LIN_MAX];
  90.  
  91. static FILE  *file_in;
  92. static FILE  *file_out;
  93.  
  94. static bool  is_subnet_info,
  95.          is_layer_info,
  96.          units_have_sites;
  97.  
  98. static int   site_name_len,
  99.          unit_name_len,
  100.          type_name_len,
  101.          site_func_len,
  102.          act_func_len,
  103.          out_func_len,
  104.          def_act_func_len,
  105.          def_out_func_len,
  106.              unit_no_len,
  107.              max_connects_per_line,
  108.              max_subnets_per_line,
  109.              max_layers_per_line,
  110.              pos_no_len,
  111.              subnet_no_len,
  112.              layer_no_len,
  113.              NoOfLinks,
  114.              NoOfSiteTypes,
  115.              NoOfUnitTypes,
  116.              NetfileVersion;
  117.  
  118.  
  119. static char  fmt_shape1 [ LIN_MAX ],
  120.          fmt_shape2 [ LIN_MAX ],
  121.          fmt_shape3 [ LIN_MAX ],
  122.          fmt_hdr1    [ LIN_MAX ],
  123.          fmt_hdr2    [ LIN_MAX ],
  124.          fmt_blank    [ LIN_MAX ];
  125.  
  126.  
  127. static char  *title[] = {
  128.     "SNNS network definition file",
  129.     "generated at",
  130.     "network name",
  131.     "no. of units",
  132.     "no. of connections",
  133.     "no. of unit types",
  134.     "no. of site types",
  135.     "learning function",
  136.     "site definition section",
  137.     "type definition section",
  138.     "unit definition section",
  139.     "connection definition section",
  140.     "subnet definition section",
  141.     "unit default section",
  142.     "source files",
  143.     "layer definition section",
  144.     "update function",
  145.     "3D translation section",
  146.     "time delay section"
  147. /*
  148.     "topologic definition section",
  149.     "feedforward network"
  150. */
  151.     };     /*  18  */
  152.  
  153. static int  NoOfTitles = (sizeof title) / (sizeof title[0]);
  154.  
  155.  
  156. static char  *patHeader[] = {
  157.     "SNNS pattern definition file %s\n",
  158.     "generated at",
  159.     "No. of patterns     : %d\n",
  160.     "No. of input units  : %d\n",
  161.     "No. of output units : %d\n",
  162.     " no. of layers: %d\n",
  163.     "  source layer: %d\n",
  164.     "    no. of units: %d\n",
  165.     "    no. of connections to layer %d: %d\n"
  166.     };    /*  8  */
  167.  
  168.  
  169. static char *resHeader[] = {
  170.     "SNNS result file %s\n",
  171.     "generated at",
  172.     "No. of patterns     : %d\n",
  173.     "No. of input units  : %d\n",
  174.     "No. of output units : %d\n",
  175.     "startpattern        : %d\n",
  176.     "endpattern          : %d\n",
  177.     "input patterns included\n",
  178.     "teaching output included\n"
  179.     };
  180.  
  181. static char  *headers[] = {
  182.     " site name | site function",
  183.     " name | act func | out func | sites",
  184.     " act | bias | st | subnet | layer | act func | out func",
  185.     " no. | typeName | unitName | act | bias | st | position | act func | out func | sites",
  186.     " target | site | source:weight",
  187.     " subnet | unitNo.",
  188.     " layer | unitNo.",
  189.     " delta x | delta y | z",
  190.     " no. | LLN | LUN | Toff | Soff | Ctype"
  191.     };
  192.  
  193.  
  194.  
  195. /*
  196. static void  mstrcat(int __builtin_va_alist);
  197. static void  mstrcpy(int __builtin_va_alist);
  198. */
  199. static void  mstrcat(char *va_alist,...);
  200. static void  mstrcpy(char *va_alist,...);
  201. static char  *krio_getIOVersion(void);
  202. static krui_err  krio_writeHeader(char *version, char *net_name);
  203. static void krio_cutTrailingZeros(char *string);
  204. static char  *krio_repchar(char c, int N);
  205. static void  krio_stringLimits(void);
  206. static krui_err  krio_fmtShapeing(int choose_me);
  207. static krui_err  krio_writeSiteDefinitions(void);
  208. static krui_err  krio_writeTypeDefinitions(void);
  209. static char  *getTType(int st);
  210. static krui_err  krio_writeDefaultDefinitions(void);
  211. static krui_err  krio_writeUnitDefinitions(void);
  212. static krui_err  krio_writeSourcesAndWeights(void);
  213. static krui_err  krio_writeConnectionDefs(void);
  214. static krui_err  krio_writeSubnetDefs(void);
  215. static krui_err  krio_writeLayerDefs(void);
  216. static krui_err  writeXYTransTable(void);
  217. static bool  skipComments(void);
  218. static bool  skipSpace(void);
  219. static bool  comma(void);
  220. static bool  get_nl(void);
  221. static bool  get_pipe(void);
  222. static bool  skip_pipe(void);
  223. static bool  get_alpha(void);
  224. static bool  getSymbol(char *symbol);
  225. static char  *getSection(char *line, int *title_no);
  226. static bool  matchHead2(int N);
  227. static char  *my_strstr(char *s, char *find);
  228. static void  krio_readHeader(char *netfile_version, char *net_name, char *learn_func, char *update_func, int *no_of_units, int *no_of_connect, int *no_of_unitTypes, int *no_of_siteTypes);
  229. static int  str_to_Ttype(char *str);
  230. static void  krio_readSiteDefinitions(void);
  231. static void  krio_readTypeDefinitions(void);
  232. static void  krio_readDefaultDefinitions(void);
  233. static void  krio_readUnitDefinitions(void);
  234. static void  krio_readConnectionDefs(void);
  235. static void  krio_readSubnetDefs(void);
  236. static void  krio_readLayerDefs(void);
  237. static void  readXYTransTable(void);
  238.  
  239.  
  240. /* end private definition section */
  241.  
  242. #endif 
  243.  
  244.  
  245.